package com.unknowpupil.design.composite;

/**
 * @Description: <p>
 *  抽象组件
 * </p>
 * @Author: <a> w10g </a>
 * @CreateDate: Create in 2020/4/28 9:15
 * @Classname: Component
 * @Version: 1.0
 */
public interface Component {
    /**
     * 操作
     */
    void operation();
}



/**
 *叶子组件
 */
interface Leaf extends Component{

}


/**
 * 容器组件
 */
interface Composite extends Component{
    /**
     * 操作
     * @param c
     */
    void add(Component c);

    /**
     * 移除
     * @param c
     */
    void remove(Component c);

    /**
     * 获取子节点
     * @param index
     * @return
     */
    Component getChild(int index);
}

